﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using StudentWeb.BLL;
using Newtonsoft.Json.Linq;
using StudentWeb.Common;
using System.Web.Http.Results;

namespace StudentWeb.Api.Controllers
{

    public class BookController : ApiController
    {
        BookBO _bookBO = new BookBO();
        #region 书籍信息单条记录
        [HttpGet]
        public IHttpActionResult GetBookInfo(int ID)
        {
             int a = 1;
            try
            {
                var result = _bookBO.GetBookDateInfo(ID);
                return Json(result);
            }
            catch (Exception ex)
            {
                return Json(new Result(ResultCode.Fail, ex.Message));
            }
        }
        #endregion

        #region 书籍信息 添加单条记录
        [HttpPost]
        public IHttpActionResult InsertBookInfo([FromBody] JObject obj)
        {
            dynamic model = obj;
            if (model == null) return Json(new Result(ResultCode.Fail, ";缺少参数"));
            try
            {
                var result = _bookBO.InsertBookInfo(model);
                return result ? Json(new Result()) : Json(new Result(ResultCode.Fail, ";保存失败"));
            }
            catch (Exception ex)
            {
                return Json(new Result(ResultCode.Fail, ex.Message));
            }
        }
        #endregion
        #region 书籍信息 修改单条记录
        [HttpPost]
        public IHttpActionResult UpdateBookInfo([FromBody] JObject obj)
        {
            dynamic model = obj;
            if (model == null) return Json(new Result(ResultCode.Fail, ";缺少参数"));
            try
            {
                var result = _bookBO.UpdateBookInfo(model);
                return result ? Json(new Result()) : Json(new Result(ResultCode.Fail, ";保存失败"));
            }
            catch (Exception ex)
            {
                return Json(new Result(ResultCode.Fail, ex.Message));
            }
        }
        #endregion
        #region 书籍信息 修改单条记录
        [HttpPost]
        public IHttpActionResult SaveBookInfo([FromBody] JObject obj)
        {
            dynamic model = obj;
            if (model == null) return Json(new Result(ResultCode.Fail, ";缺少参数"));
            try
            {
                var result = _bookBO.SaveBookInfo(model);
                return result ? Json(new Result()) : Json(new Result(ResultCode.Fail, ";保存失败"));
            }
            catch (Exception ex)
            {
                return Json(new Result(ResultCode.Fail, ex.Message));
            }
        }
        #endregion
        #region 书籍信息 删除单条记录
        [HttpPost]
        public IHttpActionResult DeleteBookInfo([FromBody] JObject obj)
        {
            
            if (obj == null) return Json(new Result(ResultCode.Fail, ";缺少参数"));
            try
            {
                var result = _bookBO.DeleteBookInfo(obj["ID"].ToObject<int>());
                return Json(result);
            }
            catch (Exception ex)
            {
                return Json(new Result(ResultCode.Fail, ex.Message));
            }
        }
        #endregion
    }
}